/*
 * $Id$
 */
package py.windmill.action;

import java.util.Map;
import javax.servlet.http.HttpSession;

/**
 *
 * @author myang
 */
public interface Request {

    /**
     * 
     * @param m
     * @return 
     */
    boolean is(HttpMethod m);
   
    /**
     * 
     * @return 
     */
    String requestUri();

    /**
     * 
     * @param m
     * @return 
     */
    Request params(Map<String, String> m);

    /**
     * 
     * @param t
     * @return 
     */
    boolean accepts(MimeType t);

    /**
     * 
     * @return 
     */
    String accepts();

    /**
     * 
     * @param name
     * @return 
     */
    String header(String name);

    /**
     * 
     * @param path
     * @param resp 
     */
    void forward(String path);

    /**
     * 
     * @param name
     * @param val
     * @return 
     */
    Request attr(String name, Object val);

    /**
     * 
     * @param name
     * @return 
     */
    Object attr(String name);

    /**
     * 
     * @param name
     * @return 
     */
    Object context(String name);

    /**
     * 
     * @param name
     * @param val
     * @return 
     */
    Request context(String name, Object val);

    /**
     * 
     * @param name
     * @return 
     */
    String param(String name);

    /**
     * 
     * @param name
     * @return 
     */
    int getInt(String name);

    /**
     * 
     * @return 
     */
    HttpSession session();

    /**
     * 
     * @param name
     * @param val
     * @return 
     */
    Request session(String name, Object val);

    /**
     * 
     * @param name
     * @return 
     */
    Object session(String name);

    /**
     * 
     * @return 
     */
    Response response();

    /**
     * 
     * @return 
     */
    HttpMethod method();
}
